#ifndef GY_LABELWIDGET_H
#define GY_LABELWIDGET_H

#include <QWidget>
#include <QMap>
#include <QLabel>
#include "GY_ControlLibrary_global.h"
namespace Ui {
class GY_LabelWidget;
}
/**
 * @brief The GY_LabelWidget class
 * 标签控件类
 */
class GY_CONTROLLIBRARY_EXPORT GY_LabelWidget : public QWidget
{
    Q_OBJECT

public:
    explicit GY_LabelWidget(QWidget *parent = nullptr);
    ~GY_LabelWidget();
    /**
     * @brief addLabelType 添加标签类型
     * @param typeName 类型名称
     * @param fontColor 字体颜色
     * @param background 背景颜色
     */
    void addLabelType(const QString &typeName,const QColor& fontColor,const QColor& background);
    /**
     * @brief addLabel 添加标签
     * @param labelContent 标签内容
     * @param typeName 标签类型
     */
    void addLabel(const QString& labelContent,const QString& typeName=QString());
    /**
     * @brief clearLabel
     * 清除标签
     */
    void clearLabel();
private:
    Ui::GY_LabelWidget *ui;
    //标签颜色结构体
    struct LabelColor
    {
        QColor fontColor;
        QColor background;
    };
    //标签类型存储map
    QMap<QString,LabelColor> m_LabelTypeMap;
    //标签存储Map
    QMap<QLabel*,QString> m_LabelMap;
};

#endif // GY_LABELWIDGET_H
